PHLEGM v8 - Checkpoint 25 - Definition-driven 16-bit bank-map / SuperPET trace

Observed user test: SuperPET 12/12 firmware loaded, PC advances, millions of MC6809
instructions retired, but the 80-column display fills with repeated glyphs.
Screen RAM $8000-$87FF contains changing data. The prior MACHINE TRACE message
incorrectly claimed firmware never populated display RAM.

Root issue found in runtime: SuperPET-9000/machine.config.phlegm declares
legacy_bank_map_file=bank-map.config.phlegm but the v8 CPU runtime did not load
that file. The stock SuperPET banked expansion window at $9000-$9FFF therefore
read as unmapped ($FF), and System/Bank latches at $EFF8/$EFFC did not exist.

Added a generic data-driven bank-map.bi, not a SuperPET-specific opcode path:
  - Parses latch-range, indexed-window-controls, write-protect-selector
  - Supports mirrored latch addresses, guarded writes, bank selection, protection
  - Makes declared windows CPU-visible through generic read/write dispatch
  - Holds 64 KiB machine-specific banked backing RAM, reset on power-on
  - Preserves bank RAM on vector-only CPU reset
  - Reports latch and window state in the existing MACHINE TRACE snapshots
  - Validates malformed/unsupported directives rather than silently ignoring

DOES NOT implement secondary 6502 switching yet; that remains a separate CPU
integration checkpoint. Do not interpret the bank-mapper change as proof of a
correct SuperPET 6809 boot or working Waterloo screen. Native FreeBASIC compile
and actual 6809 startup behavior still require testing.

All shipped text is CRLF except Linux .sh files (LF). No Python tooling shipped.
